<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>HexFiend: HFRangeSet Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">HexFiend
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Instance Methods</a> &#124;
<a href="#pub-static-methods">Class Methods</a> &#124;
<a href="interface_h_f_range_set-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">HFRangeSet Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>A set of HFRanges. <a class="el" href="interface_h_f_range_set.html" title="A set of HFRanges. HFRangeSet takes the interpetation that all zero-length ranges are identical...">HFRangeSet</a> takes the interpetation that all zero-length ranges are identical.  
 <a href="interface_h_f_range_set.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for HFRangeSet:</div>
<div class="dyncontent">
 <div class="center">
  <img src="interface_h_f_range_set.png" usemap="#HFRangeSet_map" alt=""/>
  <map id="HFRangeSet_map" name="HFRangeSet_map">
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Instance Methods</h2></td></tr>
<tr class="memitem:a653a286582d255e32e46817a0bc65df7"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_h_f_range_set.html#a653a286582d255e32e46817a0bc65df7">addRange:</a></td></tr>
<tr class="separator:a653a286582d255e32e46817a0bc65df7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab28c45efa4ac0ce0400e9cc59ea73364"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_h_f_range_set.html#ab28c45efa4ac0ce0400e9cc59ea73364">removeRange:</a></td></tr>
<tr class="separator:ab28c45efa4ac0ce0400e9cc59ea73364"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3a90c8ac76528d1f5663f7433c40286"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_h_f_range_set.html#aa3a90c8ac76528d1f5663f7433c40286">clipToRange:</a></td></tr>
<tr class="separator:aa3a90c8ac76528d1f5663f7433c40286"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97684c36f232035b98cfac401ec1b352"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_h_f_range_set.html#a97684c36f232035b98cfac401ec1b352">toggleRange:</a></td></tr>
<tr class="separator:a97684c36f232035b98cfac401ec1b352"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a636758df1794511d60df742651181535"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_h_f_range_set.html#a636758df1794511d60df742651181535">addRangeSet:</a></td></tr>
<tr class="separator:a636758df1794511d60df742651181535"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b0ca24f59bbc43cd4dd70eb354cb129"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_h_f_range_set.html#a9b0ca24f59bbc43cd4dd70eb354cb129">removeRangeSet:</a></td></tr>
<tr class="separator:a9b0ca24f59bbc43cd4dd70eb354cb129"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97c927d730e20dc44094c83282d14e78"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_h_f_range_set.html#a97c927d730e20dc44094c83282d14e78">clipToRangeSet:</a></td></tr>
<tr class="separator:a97c927d730e20dc44094c83282d14e78"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af917bfd25d03a43fc8ccae33e50e7004"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_h_f_range_set.html#af917bfd25d03a43fc8ccae33e50e7004">toggleRangeSet:</a></td></tr>
<tr class="separator:af917bfd25d03a43fc8ccae33e50e7004"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1de2147d6b7b6836c4086a5b83174c4c"><td class="memItemLeft" align="right" valign="top">(BOOL)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_h_f_range_set.html#a1de2147d6b7b6836c4086a5b83174c4c">isEqualToRangeSet:</a></td></tr>
<tr class="separator:a1de2147d6b7b6836c4086a5b83174c4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24d83f497c1f5b387c9277b127892019"><td class="memItemLeft" align="right" valign="top">(BOOL)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_h_f_range_set.html#a24d83f497c1f5b387c9277b127892019">isEmpty</a></td></tr>
<tr class="separator:a24d83f497c1f5b387c9277b127892019"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aabb11a917ccf4a5116d807576acd185f"><td class="memItemLeft" align="right" valign="top">(BOOL)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_h_f_range_set.html#aabb11a917ccf4a5116d807576acd185f">containsAllRange:</a></td></tr>
<tr class="separator:aabb11a917ccf4a5116d807576acd185f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb8f98edfda88bfa024dfcd5a86c3e44"><td class="memItemLeft" align="right" valign="top">(BOOL)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_h_f_range_set.html#acb8f98edfda88bfa024dfcd5a86c3e44">overlapsAnyRange:</a></td></tr>
<tr class="separator:acb8f98edfda88bfa024dfcd5a86c3e44"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a1d77b47914c8a02cf7d9d6a7ba65c5"><td class="memItemLeft" align="right" valign="top">(BOOL)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_h_f_range_set.html#a0a1d77b47914c8a02cf7d9d6a7ba65c5">containsAllRangeSet:</a></td></tr>
<tr class="separator:a0a1d77b47914c8a02cf7d9d6a7ba65c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a395968acee921fe349e17836c314bdea"><td class="memItemLeft" align="right" valign="top">(BOOL)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_h_f_range_set.html#a395968acee921fe349e17836c314bdea">overlapsAnyRangeSet:</a></td></tr>
<tr class="separator:a395968acee921fe349e17836c314bdea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc2eeb205db20c94427fcfd35bdd4240"><td class="memItemLeft" align="right" valign="top">(<a class="el" href="struct_h_f_range.html">HFRange</a>)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_h_f_range_set.html#adc2eeb205db20c94427fcfd35bdd4240">spanningRange</a></td></tr>
<tr class="separator:adc2eeb205db20c94427fcfd35bdd4240"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acbe0f601394a711908d17a142bd61227"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_h_f_range_set.html#acbe0f601394a711908d17a142bd61227">assertIntegrity</a></td></tr>
<tr class="separator:acbe0f601394a711908d17a142bd61227"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Class Methods</h2></td></tr>
<tr class="memitem:a36589887afbbd25a3a162cadb4ade23a"><td class="memItemLeft" align="right" valign="top">(<a class="el" href="interface_h_f_range_set.html">HFRangeSet</a> *)&#160;</td><td class="memItemRight" valign="bottom">+ <a class="el" href="interface_h_f_range_set.html#a36589887afbbd25a3a162cadb4ade23a">withRange:</a></td></tr>
<tr class="separator:a36589887afbbd25a3a162cadb4ade23a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6f071120fe00346c0bd1c7c3a987ea5"><td class="memItemLeft" align="right" valign="top">(<a class="el" href="interface_h_f_range_set.html">HFRangeSet</a> *)&#160;</td><td class="memItemRight" valign="bottom">+ <a class="el" href="interface_h_f_range_set.html#af6f071120fe00346c0bd1c7c3a987ea5">withRanges:count:</a></td></tr>
<tr class="separator:af6f071120fe00346c0bd1c7c3a987ea5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac03e56aa0ced91a4d85ff1eabcbf40c5"><td class="memItemLeft" align="right" valign="top">(<a class="el" href="interface_h_f_range_set.html">HFRangeSet</a> *)&#160;</td><td class="memItemRight" valign="bottom">+ <a class="el" href="interface_h_f_range_set.html#ac03e56aa0ced91a4d85ff1eabcbf40c5">withRangeWrappers:</a></td></tr>
<tr class="separator:ac03e56aa0ced91a4d85ff1eabcbf40c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0956124f9f9fa87cb58a8f25daea33db"><td class="memItemLeft" align="right" valign="top">(<a class="el" href="interface_h_f_range_set.html">HFRangeSet</a> *)&#160;</td><td class="memItemRight" valign="bottom">+ <a class="el" href="interface_h_f_range_set.html#a0956124f9f9fa87cb58a8f25daea33db">withRangeSet:</a></td></tr>
<tr class="separator:a0956124f9f9fa87cb58a8f25daea33db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a652b7e64280be25b9190fcc96a6a07"><td class="memItemLeft" align="right" valign="top">(<a class="el" href="interface_h_f_range_set.html">HFRangeSet</a> *)&#160;</td><td class="memItemRight" valign="bottom">+ <a class="el" href="interface_h_f_range_set.html#a0a652b7e64280be25b9190fcc96a6a07">complementOfRangeSet:inRange:</a></td></tr>
<tr class="separator:a0a652b7e64280be25b9190fcc96a6a07"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Essentially, a mutable array of ranges that is maintained to be sorted and minimized (i.e. merged with overlapping neighbors).</p>
<p>TODO: The HexFiend codebase currently uses arrays of HFRangeWrappers that have been run through organizeAndMergeRanges:, and not <a class="el" href="interface_h_f_range_set.html" title="A set of HFRanges. HFRangeSet takes the interpetation that all zero-length ranges are identical...">HFRangeSet</a>. The advantage of <a class="el" href="interface_h_f_range_set.html" title="A set of HFRanges. HFRangeSet takes the interpetation that all zero-length ranges are identical...">HFRangeSet</a> is that the sorting &amp; merging is implied by the type, instead of just tacitly assumed. This should lead to less confusion and fewer extra applications of organizeAndMergeRanges.</p>
<p>TODO: <a class="el" href="interface_h_f_range_set.html" title="A set of HFRanges. HFRangeSet takes the interpetation that all zero-length ranges are identical...">HFRangeSet</a> needs to be tested! I guarantee it has bugs! (Which doesn't matter right now because it's all dead code...) </p>
</div><h2 class="groupheader">Method Documentation</h2>
<a id="a36589887afbbd25a3a162cadb4ade23a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a36589887afbbd25a3a162cadb4ade23a">&sect;&nbsp;</a></span>withRange:()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">+ (<a class="el" href="interface_h_f_range_set.html">HFRangeSet</a> *) withRange: </td>
          <td></td>
          <td class="paramtype">(<a class="el" href="struct_h_f_range.html">HFRange</a>)&#160;</td>
          <td class="paramname"><em>range</em></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Create a range set with just one range. </p>

</div>
</div>
<a id="af6f071120fe00346c0bd1c7c3a987ea5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af6f071120fe00346c0bd1c7c3a987ea5">&sect;&nbsp;</a></span>withRanges:count:()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">+ (<a class="el" href="interface_h_f_range_set.html">HFRangeSet</a> *) withRanges: </td>
          <td></td>
          <td class="paramtype">(const <a class="el" href="struct_h_f_range.html">HFRange</a> *)&#160;</td>
          <td class="paramname"><em>ranges</em></td>
        </tr>
        <tr>
          <td class="paramkey">count:</td>
          <td></td>
          <td class="paramtype">(NSUInteger)&#160;</td>
          <td class="paramname"><em>count</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Create a range set with a C array of ranges. No prior sorting is necessary. </p>

</div>
</div>
<a id="ac03e56aa0ced91a4d85ff1eabcbf40c5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac03e56aa0ced91a4d85ff1eabcbf40c5">&sect;&nbsp;</a></span>withRangeWrappers:()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">+ (<a class="el" href="interface_h_f_range_set.html">HFRangeSet</a> *) withRangeWrappers: </td>
          <td></td>
          <td class="paramtype">(NSArray *)&#160;</td>
          <td class="paramname"><em>ranges</em></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Create a range set with an array of HFRangeWrappers. No prior sorting is necessary. </p>

</div>
</div>
<a id="a0956124f9f9fa87cb58a8f25daea33db"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0956124f9f9fa87cb58a8f25daea33db">&sect;&nbsp;</a></span>withRangeSet:()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">+ (<a class="el" href="interface_h_f_range_set.html">HFRangeSet</a> *) withRangeSet: </td>
          <td></td>
          <td class="paramtype">(<a class="el" href="interface_h_f_range_set.html">HFRangeSet</a> *)&#160;</td>
          <td class="paramname"><em>rangeSet</em></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Create a range set as a copy of another. </p>

</div>
</div>
<a id="a0a652b7e64280be25b9190fcc96a6a07"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0a652b7e64280be25b9190fcc96a6a07">&sect;&nbsp;</a></span>complementOfRangeSet:inRange:()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">+ (<a class="el" href="interface_h_f_range_set.html">HFRangeSet</a> *) complementOfRangeSet: </td>
          <td></td>
          <td class="paramtype">(<a class="el" href="interface_h_f_range_set.html">HFRangeSet</a> *)&#160;</td>
          <td class="paramname"><em>rangeSet</em></td>
        </tr>
        <tr>
          <td class="paramkey">inRange:</td>
          <td></td>
          <td class="paramtype">(<a class="el" href="struct_h_f_range.html">HFRange</a>)&#160;</td>
          <td class="paramname"><em>range</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Equivalent to <a class="el" href="interface_h_f_range_set.html" title="A set of HFRanges. HFRangeSet takes the interpetation that all zero-length ranges are identical...">HFRangeSet</a> *x = [<a class="el" href="interface_h_f_range_set.html" title="A set of HFRanges. HFRangeSet takes the interpetation that all zero-length ranges are identical...">HFRangeSet</a> withRange:range]; [x removeRange:rangeSet]; </p>

</div>
</div>
<a id="a653a286582d255e32e46817a0bc65df7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a653a286582d255e32e46817a0bc65df7">&sect;&nbsp;</a></span>addRange:()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (void) addRange: </td>
          <td></td>
          <td class="paramtype">(<a class="el" href="struct_h_f_range.html">HFRange</a>)&#160;</td>
          <td class="paramname"><em>range</em></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Union with range </p>

</div>
</div>
<a id="ab28c45efa4ac0ce0400e9cc59ea73364"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab28c45efa4ac0ce0400e9cc59ea73364">&sect;&nbsp;</a></span>removeRange:()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (void) removeRange: </td>
          <td></td>
          <td class="paramtype">(<a class="el" href="struct_h_f_range.html">HFRange</a>)&#160;</td>
          <td class="paramname"><em>range</em></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Subtract range </p>

</div>
</div>
<a id="aa3a90c8ac76528d1f5663f7433c40286"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa3a90c8ac76528d1f5663f7433c40286">&sect;&nbsp;</a></span>clipToRange:()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (void) clipToRange: </td>
          <td></td>
          <td class="paramtype">(<a class="el" href="struct_h_f_range.html">HFRange</a>)&#160;</td>
          <td class="paramname"><em>range</em></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Intersect with range </p>

</div>
</div>
<a id="a97684c36f232035b98cfac401ec1b352"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a97684c36f232035b98cfac401ec1b352">&sect;&nbsp;</a></span>toggleRange:()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (void) toggleRange: </td>
          <td></td>
          <td class="paramtype">(<a class="el" href="struct_h_f_range.html">HFRange</a>)&#160;</td>
          <td class="paramname"><em>range</em></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Symmetric difference with range </p>

</div>
</div>
<a id="a636758df1794511d60df742651181535"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a636758df1794511d60df742651181535">&sect;&nbsp;</a></span>addRangeSet:()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (void) addRangeSet: </td>
          <td></td>
          <td class="paramtype">(<a class="el" href="interface_h_f_range_set.html">HFRangeSet</a> *)&#160;</td>
          <td class="paramname"><em>rangeSet</em></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Union with range set </p>

</div>
</div>
<a id="a9b0ca24f59bbc43cd4dd70eb354cb129"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9b0ca24f59bbc43cd4dd70eb354cb129">&sect;&nbsp;</a></span>removeRangeSet:()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (void) removeRangeSet: </td>
          <td></td>
          <td class="paramtype">(<a class="el" href="interface_h_f_range_set.html">HFRangeSet</a> *)&#160;</td>
          <td class="paramname"><em>rangeSet</em></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Subtract range set </p>

</div>
</div>
<a id="a97c927d730e20dc44094c83282d14e78"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a97c927d730e20dc44094c83282d14e78">&sect;&nbsp;</a></span>clipToRangeSet:()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (void) clipToRangeSet: </td>
          <td></td>
          <td class="paramtype">(<a class="el" href="interface_h_f_range_set.html">HFRangeSet</a> *)&#160;</td>
          <td class="paramname"><em>rangeSet</em></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Intersect with range set </p>

</div>
</div>
<a id="af917bfd25d03a43fc8ccae33e50e7004"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af917bfd25d03a43fc8ccae33e50e7004">&sect;&nbsp;</a></span>toggleRangeSet:()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (void) toggleRangeSet: </td>
          <td></td>
          <td class="paramtype">(<a class="el" href="interface_h_f_range_set.html">HFRangeSet</a> *)&#160;</td>
          <td class="paramname"><em>rangeSet</em></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Symmetric difference with range set </p>

</div>
</div>
<a id="a1de2147d6b7b6836c4086a5b83174c4c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1de2147d6b7b6836c4086a5b83174c4c">&sect;&nbsp;</a></span>isEqualToRangeSet:()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (BOOL) isEqualToRangeSet: </td>
          <td></td>
          <td class="paramtype">(<a class="el" href="interface_h_f_range_set.html">HFRangeSet</a> *)&#160;</td>
          <td class="paramname"><em>rangeSet</em></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Test if two range sets are equivalent. </p>

</div>
</div>
<a id="a24d83f497c1f5b387c9277b127892019"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a24d83f497c1f5b387c9277b127892019">&sect;&nbsp;</a></span>isEmpty()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (BOOL) isEmpty </td>
          <td></td>
          <td class="paramname"></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Test if range set is empty. </p>

</div>
</div>
<a id="aabb11a917ccf4a5116d807576acd185f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aabb11a917ccf4a5116d807576acd185f">&sect;&nbsp;</a></span>containsAllRange:()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (BOOL) containsAllRange: </td>
          <td></td>
          <td class="paramtype">(<a class="el" href="struct_h_f_range.html">HFRange</a>)&#160;</td>
          <td class="paramname"><em>range</em></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Check if the range set covers all of a range. Always true if 'range' is zero length. </p>

</div>
</div>
<a id="acb8f98edfda88bfa024dfcd5a86c3e44"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acb8f98edfda88bfa024dfcd5a86c3e44">&sect;&nbsp;</a></span>overlapsAnyRange:()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (BOOL) overlapsAnyRange: </td>
          <td></td>
          <td class="paramtype">(<a class="el" href="struct_h_f_range.html">HFRange</a>)&#160;</td>
          <td class="paramname"><em>range</em></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Check if the range set covers any of a range. Never true if 'range' is zero length. </p>

</div>
</div>
<a id="a0a1d77b47914c8a02cf7d9d6a7ba65c5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0a1d77b47914c8a02cf7d9d6a7ba65c5">&sect;&nbsp;</a></span>containsAllRangeSet:()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (BOOL) containsAllRangeSet: </td>
          <td></td>
          <td class="paramtype">(<a class="el" href="interface_h_f_range_set.html">HFRangeSet</a> *)&#160;</td>
          <td class="paramname"><em>rangeSet</em></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Check if this range is a superset of another. </p>

</div>
</div>
<a id="a395968acee921fe349e17836c314bdea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a395968acee921fe349e17836c314bdea">&sect;&nbsp;</a></span>overlapsAnyRangeSet:()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (BOOL) overlapsAnyRangeSet: </td>
          <td></td>
          <td class="paramtype">(<a class="el" href="interface_h_f_range_set.html">HFRangeSet</a> *)&#160;</td>
          <td class="paramname"><em>rangeSet</em></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Check if this range has a nonempty intersection with another. </p>

</div>
</div>
<a id="adc2eeb205db20c94427fcfd35bdd4240"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adc2eeb205db20c94427fcfd35bdd4240">&sect;&nbsp;</a></span>spanningRange()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (<a class="el" href="struct_h_f_range.html">HFRange</a>) spanningRange </td>
          <td></td>
          <td class="paramname"></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Return a single range that covers the entire range set </p>

</div>
</div>
<a id="acbe0f601394a711908d17a142bd61227"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acbe0f601394a711908d17a142bd61227">&sect;&nbsp;</a></span>assertIntegrity()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (void) assertIntegrity </td>
          <td></td>
          <td class="paramname"></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="_h_f_functions_8h_source.html">HFFunctions.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.12
</small></address>
</body>
</html>
